﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BeeZ.CommonObjects
{
    namespace Interfaces
    {
        public delegate void Collect(IHoney h);
        /// <summary>
        /// Represents a basic bee.
        /// A bee is the object which does the data mining.
        /// </summary>
        public interface IBee
        {

            event Collect OnGetHoney;

            /// <summary>
            /// Starts the bee's quest for honey.
            /// </summary>
            void StartFlying(object o);

            /// <summary>
            /// Stops the bee's quest for honey.
            /// </summary>
            void Pause();

            void Resume();
            /*
            /// <summary>
            /// Retrieves information which later will be sent as honey.
            /// </summary>
            void SuckFlower();

            /// <summary>
            /// Encapsulate the information retrieved in a honey object.
            /// </summary>
            void CreateHoney();*/

        }

        public interface IIdleSensitive
        {
        }

        /// <summary>
        /// Represents a basic Honey.
        /// Honey is the object which carries the information found by the bee.
        /// </summary>
        /// 

        
        public interface IHoney
        {
            //String GetMessage();
            String GetFriendlyMessage();
            Object GetProperty(string s);
        }

        /// <summary>
        /// Represents a basic bear.
        /// A bear is the object which recieves the information and proccess it.
        /// </summary>
        public interface IBear
        {
            /// <summary>
            /// Have this bear proccess some honey.
            /// </summary>
            void Eat(IHoney h);

            void AddPolicy(IPolicy policy);

           
        }

        public interface IPolicy
        {
            bool Validate(IHoney h);
        }

        /// <summary>
        /// Represents a basic Hive.
        /// A Hive is the object which gathers the bees and control them.
        /// </summary>

    }
}
